The routing of network messages from a client to a bank of servers via a router can be a haphazard process. Depending on the router's fairness algorithm a message could get forwarded to a different server each time a connection with the bank of servers is requested by a client. A connection between a particular client and a particular server is repeatable. However, often a client only knows of a group of servers it needs to communicate with. As the amount of data that servers have to provide increases, having a group of servers providing that data is becoming more common.
A particular client will often communicate with the bank of servers repeatedly looking for related data on subsequent connections to the bank of servers. For example, a client may look for data that relates to an executable that it is running or a database that the client is accessing. It would be advantageous for a bank of servers to direct a particular client to a particular server each time a connection to the bank of servers is established. Having a repeatable connection would decrease the number of page faults and reduce the latency incurred in a data request. Further, a repeatable connection increases the caching efficiency on remote proxy servers. Proxy servers will cache the same document or file retrieval from different servers having different Uniform Resource Locations (URLs), and it is thus advantageous to have the same file retrieval from the same server via a single proxy server.
Currently a router will accept messages from a client, and route those messages from the client to a server in a bank of servers according to its particular fairness algorithm. Choosing a server in this manner may result in different servers being contacted each time the client makes a request for information from the bank of servers. This may cause the servers to page fault unnecessarily and may increase the latency involved in a transaction.